package com.czk.scala.chapter06

import scala.beans.BeanProperty

/**
 * 面向对象的基本特性
 *
 * @Author:ChenZhangKun
 * @Date: 2022/1/6 17:29
 */
object Test03_class {
  def main(args: Array[String]): Unit = {
    val student = new Student

    student.age = 28
    student.sex = "男"

    println(student)
  }
}

// 定义类
// 默认是public
class Student {
  // 定义属性
  // 不加默认的public
  private val name: String = "czk"
  // 默认为0
  @BeanProperty // 表示可修改，很多反射框架会显示调用getXXX和setXXX方法，此注解可以和这些框架兼容
  var age: Int = 27
  // _表示定初始值为空，默认引用类型为null
  @BeanProperty
  var sex: String = _

  // toString方法
  override def toString = s"Student($name, $age, $sex)"
}
